summaryrefslogtreecommitdiff
path: root/app/[lng]/evcp/(evcp)/(system)/permissions/page.tsx
blob: 3c57976ac0b8a5989eb44a8ead3f7ea0ad8249b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// app/evcp/(evcp)/permissions/page.tsx

"use client";

import { useState } from "react";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { Shield, Users, Key, Menu, Search, Plus } from "lucide-react";
import { RolePermissionManager } from "@/components/permissions/role-permission-manager";
import { PermissionAssignmentManager } from "@/components/permissions/permission-assignment-manager";
import { UserPermissionManager } from "@/components/permissions/user-permission-manager";
import { PermissionGroupAssignmentManager } from "@/components/permissions/permission-group-assignment-manager";

export default function PermissionManagementPage() {
  const [searchTerm, setSearchTerm] = useState("");
  const [selectedTab, setSelectedTab] = useState("by-role");

  return (
    <div className="container mx-auto p-6">
      <div className="mb-6">
        <h1 className="text-3xl font-bold mb-2">권한 관리</h1>
        <p className="text-muted-foreground">
          시스템 권한을 역할, 사용자, 메뉴별로 관리합니다.
        </p>
      </div>

      <Tabs value={selectedTab} onValueChange={setSelectedTab}>
        <TabsList className="grid w-full grid-cols-4">
          <TabsTrigger value="by-role">
            <Users className="mr-2 h-4 w-4" />
            역할별 관리
          </TabsTrigger>
          <TabsTrigger value="by-user">
            <Shield className="mr-2 h-4 w-4" />
            사용자별 관리
          </TabsTrigger>
          <TabsTrigger value="by-permission">
            <Key className="mr-2 h-4 w-4" />
            권한별 관리
          </TabsTrigger>
          <TabsTrigger value="by-group">
            <Menu className="mr-2 h-4 w-4" />
            그룹별 관리
          </TabsTrigger>
        </TabsList>

        {/* 역할별 권한 관리 */}
        <TabsContent value="by-role">
          <RolePermissionManager />
        </TabsContent>

        {/* 사용자별 권한 관리 */}
        <TabsContent value="by-user">
          <UserPermissionManager />
        </TabsContent>

        {/* 권한별 사용자/역할 관리 */}
        <TabsContent value="by-permission">
          <PermissionAssignmentManager />
        </TabsContent>

{/* 권한 그룹별 사용자/역할 관리 */}
<TabsContent value="by-group">
          <PermissionGroupAssignmentManager />
        </TabsContent>
      </Tabs>
    </div>
  );
}